package com.lambo.maven.core.utils.superHttp;

import java.util.List;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;

import com.lambo.maven.core.utils.superHttp.entity.SHttpConfig;

/**
 * SHttpI
 */
public interface SHttpI {

    public SHttpConfig getConfig() ;

    public String get(String url, String content, Map<String, String> header, String encoding) ;

    public String get(String url, String content, String encoding) ;

    public String get(String url, String param) ;

    public String get(String url) ;

    public String get(String url, Map<String, ?> param, Map<String, String> header) ;

    public <T> String get(String url, Map<String, ?> param) ;
    

    public String post(String url, Map<String, String> param);

    // Param 无法满足有序的同时重复key
    public String post(String url, Map<String, ?> param, String encoding);

    public String post(String url, Map<String, ?> param, Map<String, String> header);

    public String post(String url, Map<String, ?> param, String encoding, Map<String, String> header);
    
    /**
     * 保证有序同时重复name
     * @param url
     * @param list
     * @param encoding
     * @return
     */
    public String postList(String url, List<String> list, String encoding) ;

    public byte[] postBytes(String url, byte[] bytes) ;

    public String postStr(String url, String content, Map<String, String> header, String encoding);

	public String postStr(String url, String content, String encoding) ;

	public String postStr(String url, String content) ;
    
    public String post(String url, List<NameValuePair> pairList, String encoding, Map<String, String> header) ;

    public String post(String url, HttpEntity entity, Map<String, String> header, String encoding);

    
}